home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Aminet 46
/
Aminet 46 (2001)(GTI - Schatztruhe)[!][Dec 2001].iso
/
Aminet
/
text
/
edit
/
edt10src.lha
/
txt
/
RxWindows.mod
< prev
next >
Wrap
Text File
|
1995-04-09
|
3KB
|
165 lines
(*
.name RxWindows
.task arexx commands for windows
.release 1.0
.language Oberon-2
.translator Amiga Oberon 3.2
.system req. AmigaOS 2.04 or higher
.author Joachim Barheine
.address Hochgrevestr. 3, 38640 Goslar
.copyright (c) 1995 by J. Barheine
*)
(* .info: 09/04/95, 19:44:06, version 1 *)
MODULE RxWindows;
IMPORT
I:= Intuition,
IO:= IOServer,
L:= UntracedLists,
Prj:= EProject,
Rx:= ERexx,
Str:= StrPool,
W:= Windows;
PROCEDURE ActivateWindow* (w: W.Window);
BEGIN
I.ActivateWindow(w.win);
END ActivateWindow;
PROCEDURE Busy* (w: W.Window);
VAR
title: ARRAY 128 OF CHAR;
BEGIN
Rx.GetStrLastDef(title, "");
IO.Busy(w.text, title);
END Busy;
PROCEDURE BusyDone* (w: W.Window);
BEGIN
IO.BusyDone(w.text);
END BusyDone;
PROCEDURE FirstWindow* (VAR w: W.Window);
BEGIN
w:= IO.windows.head(W.Window);
END FirstWindow;
PROCEDURE LastWindow* (VAR w: W.Window);
BEGIN
w:= IO.windows.tail(W.Window);
END LastWindow;
PROCEDURE NextWindow* (VAR w: W.Window);
VAR
res: BOOLEAN;
BEGIN
res:= TRUE;
IF w.next # NIL THEN
w:= w.next(W.Window);
ELSIF Rx.Match("CYCLE") THEN
FirstWindow(w);
ELSE
res:= FALSE;
END;
Rx.SetBoolResult(res);
END NextWindow;
PROCEDURE PrevWindow* (VAR w: W.Window);
VAR
res: BOOLEAN;
BEGIN
res:= TRUE;
IF w.prev # NIL THEN
w:= w.prev(W.Window);
ELSIF Rx.Match("CYCLE") THEN
LastWindow(w);
ELSE
res:= FALSE;
END;
Rx.SetBoolResult(res);
END PrevWindow;
PROCEDURE Quit* (w: W.Window; VAR msg: SHORTINT);
BEGIN
IF w # NIL THEN
w.Busy(Str.quitting^);
IF Rx.Match("ALL") THEN
IF Prj.CloseAll(w) THEN
msg:= IO.msgQuit;
RETURN;
END;
ELSIF Prj.Close(w, FALSE) THEN
msg:= IO.msgClosed;
Rx.SetBoolResult(TRUE);
RETURN;
END;
w.BusyDone;
Rx.SetBoolResult(FALSE);
ELSE
msg:= IO.msgQuit;
END;
END Quit;
PROCEDURE SelectWindow* (VAR w: W.Window);
VAR
id: LONGINT;
n: L.NodePtr;
BEGIN
IF Rx.GetNumErr(id) THEN
n:= IO.GetWindow(SHORT(id));
IF n # NIL THEN
w:= n(W.Window);
ELSE
Rx.ErrorMsg(Str.unknownWindowID^);
END;
END;
END SelectWindow;
PROCEDURE SetWindowBox* (w: W.Window);
VAR
x, y, wd, ht: LONGINT;
BEGIN
IF Rx.GetNumErr(x) & Rx.GetNumErr(y) & Rx.GetNumErr(wd) & Rx.GetNumErr(ht) THEN
I.ChangeWindowBox(w.win, x, y, wd, ht);
END;
END SetWindowBox;
PROCEDURE Title* (w: W.Window);
VAR
title: ARRAY 128 OF CHAR;
BEGIN
IF Rx.GetStrLastErr(title) THEN w.Title(title) END;
END Title;
PROCEDURE WindowToBack* (w: W.Window);
BEGIN
I.WindowToBack(w.win);
END WindowToBack;
PROCEDURE WindowToFront* (w: W.Window);
BEGIN
I.WindowToFront(w.win);
END WindowToFront;
END RxWindows.